require 'singleton'

class Enum < Enumerable::Enumerator
  
  include Singleton
  
  public
  
  def collect(&block)
    @collections.each_pair {|k,v| yield v} if block
    @collections.values
  end
  
  protected
  
  def initialize
    @collections = {}
  end
  
end
